// const mysql = require("mysql");

// let pool = mysql.createPool({
//     host: '127.0.0.1',
//     user: 'root',
//     password: 'root',
//     database: 'bookschina',
//     port: 3306,
//     connectionLimit: 10
// });

// const exec = (sql, pramas) => {
//     return new Promise((resolve, reject) => {
//         pool.getConnection((err, conn) => {
//             if (err) {
//                 console.log("数据库连接失败:" + err);
//                 reject(err)
//             }
//             conn.query(sql, pramas, (err, result) => {
//                 if (err) {
//                     console.log("SQL语句执行失败:" + err);
//                     reject(err);
//                 }
//                 resolve(result);
//                 conn.release();//释放链接 
//             });
//         })
//     })
// }

// module.exports = {
//     exec
// }

const mysql = require("mysql");

let pool = mysql.createPool({
    host: '127.0.0.1',
    user: 'root',
    password: 'root',
    database: 'bookschina',
    port: '3306',
    connectTimeout: 10,
})


// 其他文件调用exec传入参数(sql,conn) 做查询增删改查,并返回result
const exec = (sql, pramas) => {

    return new Promise((resolve, reject) => { //promise包裹一层解决回调地狱,
        pool.getConnection((err, conn) => { //连接数据库,写个if做错误报告

            if (err) {
                console.log("数据库连接失败" + err);
                reject(err);    //promise参数返回错误
            }
            // 连接数据库成功后
            conn.query(sql, pramas, (err, result) => { // 执行SQL语句,写个if做错误报告

                if (err) {
                    console.log("执行SQL语句失败" + err);   //执行语句失败之后呢?返回了什么,这个时候exec是什么
                    reject(err);    
                }
                resolve(result);    //返回结果
                conn.release();     //释放连接
            })


        })
    })

}


module.exports = {
    exec,
}


// 在登录路由那块引入